/*
 * @Descripttion:
 * @version:
 * @Author: wujq
 * @Date: 2023-06-12 16:35:04
 * @LastEditors: Andy
 * @LastEditTime: 2023-06-13 18:43:28
 */
import moment from 'moment';
// import _ from 'lodash';
import calculateMilliseconds from './calculate-milliseconds';

const getRealTime = (startTime, endTime, pendingTime, status) => {
  // 暂停中的逻辑为 结束时间-开始时间-实际时间
  // 运行中的逻辑为 系统当前时间-开始时间-0（没有实际时间）
  // 完成中的逻辑为 结束时间-开始时间-实际时间 或  实际时间（没有暂停）
  if (status === 'done' || status === 'paused' || status === 'undone') {
    const pendTime = moment(endTime) - moment(startTime) - pendingTime;
    // 如果没有暂停;
    if (!pendingTime) {
      return calculateMilliseconds(moment(endTime) - moment(startTime));
    }
    if (pendTime > 0) {
      return calculateMilliseconds(pendingTime) + `(暂停${calculateMilliseconds(pendTime)})`;
    } else {
      return calculateMilliseconds(pendingTime);
    }
  } else {
    // 运行中且暂停过的逻辑为
    //  暂停后的运行时间
    if (!pendingTime) {
      return calculateMilliseconds(moment(endTime) - moment(startTime));
    }
    let afterPausedTime = moment(endTime) - moment(status);
    return (
      calculateMilliseconds(afterPausedTime + pendingTime) +
      `(暂停${calculateMilliseconds(
        moment(endTime) - moment(startTime) - afterPausedTime - pendingTime
      )})`
    );
  }
};
export default getRealTime;
